/*
 * @lc app=leetcode.cn id=860 lang=java
 *
 * [860] 柠檬水找零
 */

// @lc code=start
class Solution {
    public boolean lemonadeChange(int[] bills) {
        int five = 0 ,ten =0;
        //都不需要记录20元的钱，因为20元不可能支出的。x`
        for(int t: bills){
            switch (t) {
                case 5:
                    five++;     
                    break;
                case 10:
                    five--;//找5元
                    ten++;
                    break;
                case 20:
                    if(ten>=1){//有10元就找5+10
                        ten--;
                        five--;
                    }
                    else{
                        five-=3;
                    }
                    break;
                default:
                    return false;
            }
            //因为每个其他选项都要使用5元纸钞，如果某次找完之后为负即不可行。
            if(five<0) return false;
        }
        return true;
    }
}
// @lc code=end

